//入口文件
console.log('ok')
import Vue from 'vue'
//配置vuex的步骤：1，运行：cnpm i vuex -S
//2，导入包：
import Vuex from 'vuex'
//3.注册Vuex到Vue中
Vue.use(Vuex)
//4,new Vuex.store()实例，得到一个数据仓储对象
var store =new Vuex.Store ({
    state:{
        //大家可以把state想像成组件中的data，专门用来存数据的
        //如果在组件中，想要访问store中的数据，只能通过this.$stoe.state.*** 来访问
    count:0
    },
    mutations:{
        ////大家可以把mutations想像成组件中的methods，mutations是操作state里面数据的
         //注意：如果要操作store中的state值，只能通过调用mutations提供的方法，才能操作对应的数据，不推荐直接操作state中的数据，因为万一导致了数据的紊乱，
         //不能快速定位到错误的原因，因为每个组件都可能有操作数据的方法；
         increment(state){//加法
             state.count++
         },//这是方法。注意：如果组件想要调用mutations中的方法，只能使用this.$store.commit('方法名')
         //这种调用mutations方法的格式，和this.$emit('父组件中的方法名')相似
         subtract(state,obj){//减法
            //注意：mutations的函数参数列表中，最多支持俩个参数，其中：
            //参数1:是state状态；参数2:通过commit提交过来的参数；
             state.count -=(obj.c+obj.d)
         }
    }

})
import App from './App.vue'
const vm =new Vue({
    el:'#app',
    render:c=>c(App),
    //store: store
    //与router:router相同思路=》router
    store//5,将vuex创建的store挂载到vm实例上 ，只要挂载到了vm上，任何组件都能使用store来存取数据
})